Evrensel bağlantılar, iOS işletim sisteminde, kullanıcıların web sitenize yönlendirilmesini sağlayan bir mekanizmadır. Amaç, bir bağlantıya tıklandığında, eğer uygulamanız cihazda yüklüyse, uygulamanın açılması, uygulama yüklü değilse web sitenizin açılmasıdır. Bu, uygulama deneyimini iyileştirirken kullanıcıları doğrudan ilgili içeriklere yönlendirme olanağı sunar.
Geleneksel olarak, URL Şemaları (URL Schemes) uygulamaları açmak için kullanılmıştır. Ancak, URL şemalarının bazı dezavantajları vardır:
Evrensel bağlantılar, URL şemalarına kıyasla daha güvenli ve kullanıcı dostu bir alternatif sunar. Evrensel bağlantılar, HTTP veya HTTPS protokollerini kullanarak çalışır ve web sitenizle uygulamanız arasında bir ilişki kurar.
Evrensel bağlantılar aşağıdaki adımları izleyerek çalışır:
Evrensel bağlantıları uygulamak için aşağıdaki adımları takip etmeniz gerekir:
apple-app-site-association
dosyası, web siteniz ile uygulamanız arasındaki ilişkiyi tanımlayan bir JSON dosyasıdır. Bu dosya, uygulamanızın hangi URL'leri işleyebileceğini belirtir.
Örnek bir apple-app-site-association
dosyası:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "TEAMID.BUNDLEID",
"paths": [ "/products/*", "/blog/*" ]
}
]
}
}
appID
: Uygulamanızın Team ID ve Bundle ID kombinasyonunu belirtir.paths
: Uygulamanızın işleyeceği URL kalıplarını belirtir. *
karakteri joker karakter olarak kullanılır.Önemli Notlar:
apple-app-site-association
dosyası herhangi bir dosya uzantısına sahip olmamalıdır.apple-app-site-association
dosyasını, web sitenizin kök dizininde veya .well-known
klasörü içinde sunucunuza yerleştirmeniz gerekir. iOS bu dosyayı aşağıdaki URL'lerden kontrol eder:
https://example.com/apple-app-site-association
https://example.com/.well-known/apple-app-site-association
Dosyanın HTTPS üzerinden erişilebilir olduğundan ve Content-Type
başlığının application/json
olarak ayarlandığından emin olun.
Xcode projenizde, "Signing & Capabilities" bölümünde "Associated Domains" özelliğini etkinleştirin ve web sitenizin etki alanını ekleyin. Örneğin:
applinks:example.com
applinks:www.example.com
Önemli Not: applinks:
önekini kullanmayı unutmayın.
Uygulamanızda gelen evrensel bağlantıları işlemek için, AppDelegate
sınıfında application(_:continue:restorationHandler:)
metodunu uygulamanız gerekir.
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
guard userActivity.activityType == NSUserActivityTypeBrowsingWeb,
let incomingURL = userActivity.webpageURL,
let components = URLComponents(url: incomingURL, resolvingAgainstBaseURL: true) else {
return false
}
// URL'yi ayrıştırın ve uygulamanızda uygun işlemi gerçekleştirin.
print("Gelen URL: \(incomingURL)")
// Örneğin, bir ürün detay sayfasına yönlendirme:
if components.path.contains("/products/") {
// Ürün detay sayfasını aç
}
return true
}
Bu metot, kullanıcı bir evrensel bağlantıya tıkladığında çağrılır. Gelen URL'yi ayrıştırarak uygulamanızda ilgili işlemi gerçekleştirebilirsiniz.
Evrensel bağlantılar düzgün çalışmıyorsa, aşağıdaki adımları kontrol edin:
apple-app-site-association
dosyasının doğru formatta olduğundan ve sunucunuzda doğru konuma yerleştirildiğinden emin olun.Konsol Logları:
Cihazınızdaki konsol loglarını inceleyerek, evrensel bağlantılarla ilgili hataları veya uyarıları tespit edebilirsiniz.
Evrensel bağlantıları test etmek için aşağıdaki yöntemleri kullanabilirsiniz:
xcrun simctl openurl booted "https://example.com/products/123"
Evrensel bağlantılar, iOS uygulamaları için kullanıcı deneyimini iyileştiren ve güvenliği artıran önemli bir özelliktir. Bu makalede, evrensel bağlantıların ne olduğunu, nasıl çalıştığını ve nasıl uygulanacağını ayrıntılı olarak ele aldık.
Bu bilgiler size evrensel bağlantılar konusunda kapsamlı bir genel bakış sunmaktadır. Umarım faydalı olmuştur.